Ext.onReady(function(){
	Ext.BLANK_IMAGE_URL = 'img/s.gif';

	
// ##############################################################
// User Part
        // Stores
        var usersRolesStore = new Ext.data.JsonStore({
            autoLoad: false,
            url: '?module=AdminForm&action=getUsersRoles',
            fields: ['id', 'user_role_name'],
            data: usersRolesStoreData
        });
        var usersDetailsStore = new Ext.data.JsonStore({
            autoLoad: false,
            url: '?module=AdminForm&action=getUsersDetails',
            fields: ['id', 'user_id', 'full_name', 'phone', 'mphone', 'email', 'staff_id', 'comment '],
            data: usersDetailsStoreData
        });
        var usersStore = new Ext.data.JsonStore({
            autoLoad: false,
            url: '?module=AdminForm&action=getUsers',
            fields: ['id', 'login', 'user_role', 'last_login', 'blocked'],
            data: usersStoreData
        });
        // End of Stores

        var userTplMarkup = [
		'<div class="detail_label">Полное имя:</div><div class="detail_data">{full_name}</div><br/>',
		'<div class="detail_label">Телефон:</div><div class="detail_data">{phone}</div><br/>',
                '<div class="detail_label">Мобильный:</div><div class="detail_data">{mphone}</div><br/>',
                '<div class="detail_label">E-Mail:</div><div class="detail_data">{email}</div><br/>',
                '<div class="detail_label">Сотрудник:</div><div class="detail_data">{staff_id}</div><br/>',

	];
	var userTpl = new Ext.Template(userTplMarkup);
        
        var userDetail = new Ext.Panel({
            region: 'east',
            layout: 'border',
            id: 'userDetailForm',
            frame:true,
            title: 'Информация о пользователе',
            bodyStyle:'padding:5px 5px 0',
            width: 330,
            split: false,
            items: [ {
                id: 'userDetailPanel',
                region: 'center',
                bodyStyle: {
                    background: '#ffffff',
                    padding: '7px'
                },
                html: 'Чтобы увидеть информацию о пользователе, кликните по соответствующей записи.'
            }]
        });

        var getUserRole = function(r) { 
            var id = usersRolesStore.find('id', r);
            return usersRolesStoreData[id]['user_role_name'];
        };

        

        var usersGrid = new Ext.grid.GridPanel({
            region: 'center',
            store: usersStore,
            margins:'0 0 0 0',
            cmargins:'0 0 0 0',
            colModel: new Ext.grid.ColumnModel({
                defaults: {
                    width: 170,
                    sortable: true
                },
                columns: [
                    {header: 'User_id', width: 60, dataIndex: 'id'},
                    {header: 'Логин', width: 100, dataIndex: 'login'},
                    {header: 'Роль пользователя', width: 120, renderer: getUserRole, dataIndex: 'user_role'},
                    {header: 'Последняя авторизация', width: 150, dataIndex: 'last_login' },
                    {header: 'Блокировка', width: 80, dataIndex: 'blocked' }
                ]
            }),
             viewConfig: {
                forceFit: true
            },
            sm: new Ext.grid.RowSelectionModel({
                singleSelect:true,
                listeners: {
                    rowselect: function(sm, row, rec) {
                        var id = usersDetailsStore.find('user_id', rec.data.id);
                        var userData = usersDetailsStore.getAt(id);
                        //userDetail.getForm().loadRecord(userData);
                        userTpl.overwrite(Ext.getCmp("userDetailPanel").body, userData.data);
                    }
                }
            })
        });

        var usersRolesGrid = new Ext.grid.GridPanel({
            region: 'center',
            store: usersRolesStore,
            margins:'0 0 0 0',
            cmargins:'0 0 0 0',
            colModel: new Ext.grid.ColumnModel({
                defaults: {
                    width: 170,
                    sortable: true
                },
                columns: [
                    { header: 'ID', width: 60, dataIndex: 'id'},
                    {header: 'Название роли', width: 200, dataIndex: 'user_role_name'},
                ]
            }),
            sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
            width: 300,
            height: 300,
            frame: true
            //autoExpandColumn: 'fulname'
        });

        var userToolBar = {
            region: 'north',
            xtype: 'toolbar',
            height: 35,
            items: [
		{xtype: 'tbbutton', text: 'Добавить', scale: 'medium', icon: 'img/butt_ico_24/user-add-icon.png',
                    handler: function() {
                        Ext.getCmp("userEditFormAuth").getForm().reset();
                        Ext.getCmp("userEditFormDop").getForm().reset();
                        userEditForm.show();
                    }
                }, '-',
                {xtype: 'tbbutton', text: 'Редактировать', scale: 'medium', icon: 'img/butt_ico_24/user-accept-icon.png',
                    handler: function() {
                        var userA = usersGrid.getSelectionModel().getSelected();
                        if(userA) {
                            var id = usersDetailsStore.find('user_id', userA.data.id);
                            var userD = usersDetailsStore.getAt(id);
                            Ext.getCmp("userEditFormAuth").getForm().loadRecord(userA);
                            Ext.getCmp("userEditFormDop").getForm().loadRecord(userD);
                            userEditForm.show();
                        } else error_mes('Ошибка', 'Вы не выбрали запись для изменения.');
                    }
                }, '-',
                {xtype: 'tbbutton', text: 'Удалить', scale: 'medium', icon: 'img/butt_ico_24/user-remove-icon.png',
                    handler: function() {
                        var userA = usersGrid.getSelectionModel().getSelected();
                        if(userA) {
                            Ext.MessageBox.confirm('Внимание !!!', 'Вы уверены что хотите удалить пользователя '+userA .data.login+ '?',
                                function(btn) {
                                    if (btn == 'yes'){
                                        Ext.Ajax.request({
                                            url: '?module=AdminForm&action=deleteUser',
                                            params: {user_id: userA.data.id},
                                            //scope: this,
                                            callback: function(options, success, response) {
                                                    if(success) {
                                                        usersDetailsStore.load();
                                                        usersStore.load();
                                                    }
                                            }
                                        });
                                    }
                                }
                            );
                        } else error_mes('Ошибка', 'Вы не выбрали запись для удаления.');

                    }
                }, '-'
            ]
        };
        var userTabs = new Ext.TabPanel({
            id: 'userTabs',
            region: 'center',
            activeTab: 0,
            border: false,
            items: [{
                title: 'Пользователи',
                layout: 'border',
                items: [ userToolBar, usersGrid, userDetail ]
            },{
                title: 'Пользовательские группы',
                layout: 'border',
                items: [ usersRolesGrid ]
            }]
        });

        // User Edit Form
        var userEditForm = new Ext.Window({
            layout: 'border',
            title: 'Информация о пользователе',
            width:350,
            height:300,
            //closeAction:'hide',
            plain: true,
            modal: true,
            items: [
                new  Ext.TabPanel({
                    region: 'center',
                    activeTab: 0,
                    border: false,
                    items: [
                        {
                            title: 'Авторизация',
                            layout: 'border',
                            items: [
                                new Ext.FormPanel({
                                    region: 'center',
                                    id: 'userEditFormAuth',
                                    labelWidth: 75,
                                    frame:true,
                                    bodyStyle:'padding:5px 5px 0',
                                    width: 330,
                                    defaults: {width: 230},
                                    defaultType: 'textfield',
                                    items: [{
                                            fieldLabel: 'Логин',
                                            name: 'login',
                                            allowBlank:false
                                        },{
                                            fieldLabel: 'Пароль',
                                            name: 'pass',
                                            allowBlank:false
                                        },{
                                            inputType: 'hidden',
                                            name: 'id'
                                        },{
                                            fieldLabel: 'Пароль2',
                                            name: 'pass2',
                                            allowBlank:false
                                        }, new Ext.form.ComboBox({
                                            id: 'cbtt',
                                            fieldLabel: 'Роль',
                                            name: 'user_role',
                                            mode: 'local',
                                            emptyText: 'выбирете роль...',
                                            store: usersRolesStore,
                                            valueField: 'id',
                                            displayField: 'user_role_name',
                                            triggerAction: 'all'
                                        })
                                    ]
                                })
                            ]
                        },{
                            title: 'Доп. инфо',
                            layout: 'border',
                            items: [
                                new Ext.FormPanel({
                                    region: 'center',
                                    id: 'userEditFormDop',
                                    labelWidth: 75,
                                    frame:true,
                                    bodyStyle:'padding:5px 5px 0',
                                    width: 330,
                                    defaults: {width: 230},
                                    defaultType: 'textfield',
                                    items: [{
                                            fieldLabel: 'Полное имя',
                                            name: 'full_name',
                                            allowBlank:false
                                        },{
                                            fieldLabel: 'Телефон',
                                            name: 'phone'
                                        },{
                                            fieldLabel: 'Мобильный',
                                            name: 'mphone'
                                        }, {
                                            fieldLabel: 'Email',
                                            name: 'email',
                                            vtype:'email'
                                        }, {
                                            fieldLabel: 'Сотрудник',
                                            xtype: 'numberfield',
                                            name: 'staff_id'
                                        }
                                    ]
                                })
                            ]
                        }
                    ]
                })

            ],
            buttons: [{
                text:'Сохранить', scale: 'medium', icon: 'img/butt_ico_24/accept-icon.png',
                handler: function(){
                    var userData = Ext.getCmp("userEditFormDop").getForm().getFieldValues();
                    var userA =  Ext.getCmp("userEditFormAuth").getForm().getFieldValues();
                    var url = (userA.id) ? '?module=AdminForm&action=updateUserData' : '?module=AdminForm&action=createUser';
                    var msg = (userA.id) ? 'Данные пользователя успешно обновленвы.' : 'Новый пользователь успешно создан.';
                    userData.login = userA.login;
                    userData.id = userA.id;
                    userData.user_role = userA.user_role;
                    userData.pass = userA.pass;
                    App.setAlert(App.STATUS_ATT, 'Пожалуйста подождите...');
                    Ext.Ajax.request({
                            url: url,
                            params: userData,
                            //scope: this,
                            callback: function(options, success, response) {
                                    if(success) {
                                        usersDetailsStore.load();
                                        usersStore.load();
                                        App.setAlert(true, msg);
                                    }
                                    userEditForm.hide();
                            }
                    });
                }
            },{
                text: 'Закрыть', scale: 'medium', icon: 'img/butt_ico_24/remove-icon.png',
                handler: function(){
                    userEditForm.hide();
                }
            }]
        });
// #############################################################################
// End of  User Part
// Sprav Part
        var curGrid = null; var curStore = null;
        // SMI stores
        var smiStore = new Ext.data.JsonStore({
            autoLoad: false,
            url: '?module=AdminForm&action=getSMI',
            fields: ['actor_id', 'actor_name', 'actor_short_name', 'actor_legal_entity', 'actor_chif_name', 'actor_contact_person', 'actor_contact_phone'],
            data: smiStoreData
        });
        var mediaStore = new Ext.data.JsonStore({
            autoLoad: false,
            url: '?module=AdminForm&action=getMedia',
            fields: ['actor_id', 'actor_name', 'actor_short_name', 'actor_legal_entity', 'actor_chif_name', 'actor_contact_person', 'actor_contact_phone'],
            data: mediaStoreData
        });
        var baingStore = new Ext.data.JsonStore({
            autoLoad: false,
            url: '?module=AdminForm&action=getBaing',
            fields: ['actor_id', 'actor_name', 'actor_short_name', 'actor_legal_entity', 'actor_chif_name', 'actor_contact_person', 'actor_contact_phone'],
            data: baingStoreData
        });
        var customsStore = new Ext.data.JsonStore({
            autoLoad: false,
            url: '?module=AdminForm&action=getCustoms',
            fields: ['actor_id', 'actor_name', 'actor_short_name', 'actor_legal_entity', 'actor_chif_name', 'actor_contact_person', 'actor_contact_phone'],
            data: customsStoreData
        });
        var brandsStore = new Ext.data.JsonStore({
            autoLoad: false,
            url: '?module=AdminForm&action=getClientBrands',
            fields: ['brand_id', 'client_id', 'brand_name', 'brand_short_name', 'comment']
        });
        // End of SMI stores

        var spravToolBar = {
            xtype: 'toolbar',
            height: 35,
            part: 'smi',
            //disabled: true,
            items: [
                {xtype: 'tbbutton', text: 'Добавить', scale: 'medium', icon: 'img/butt_ico_24/blog-post-accept-icon.png',
                    handler: function() {
                        Ext.getCmp("spravEditForm").getForm().reset();
//                        if(spravEditWindow.mod == 1) {
//                            spravEditForm.add(brField);
//                        } else {
//                           spravEditForm.remove('brandField');
//                        }
                        spravEditWindow.show();
                    }
                }, '-',
                {xtype: 'tbbutton', text: 'Редактировать', scale: 'medium', icon: 'img/butt_ico_24/blog-post-edit-icon.png',
                    handler: function() {
                        var Rec = curGrid.getSelectionModel().getSelected();
                        if(Rec) {
//                            if(spravEditWindow.mod == 1) {
//                                spravEditForm.add(brField)
//                            } else {
//                               spravEditForm.remove('brandField')
//                            }
                            var id = curStore.find('actor_id', Rec.data.actor_id);
                            var data = curStore.getAt(id);
                            Ext.getCmp("spravEditForm").getForm().loadRecord(data);
                            spravEditWindow.show();
                        } else error_mes('Ошибка', 'Вы не выбрали запись для изменения.');
                    }
                }, '-',
                {xtype: 'tbbutton', text: 'Удалить', scale: 'medium', icon: 'img/butt_ico_24/blog-post-delete-icon.png',
                    handler: function() {
                        var Rec = curGrid.getSelectionModel().getSelected();
                        if(Rec) {
                            var part ='';
                            if(spravEditWindow.mod == 0) part = 'smi';
                            if(spravEditWindow.mod == 1) part = 'customs';
                            if(spravEditWindow.mod == 2) part = 'media';
                            if(spravEditWindow.mod == 3) part = 'baing';
                            Ext.MessageBox.confirm('Внимание !!!', 'Вы уверены что хотите удалить "'+Rec.data.actor_short_name+ '"?',
                                function(btn) {
                                    if (btn == 'yes'){
                                        App.setAlert(App.STATUS_ATT, 'Пожалуйста подождите...');
                                        Ext.Ajax.request({
                                            url: '?module=AdminForm&action=deleteSprav',
                                            params: {actor_id: Rec.data.actor_id, part: part},
                                            callback: function(options, success, response) {
                                                    if(success) {
                                                        App.setAlert(App.STATUS_OK, 'Удаление прошло успешно.');
                                                        smiStore.load();
                                                    }
                                            }
                                        });
                                    }
                                }
                            );
                        } else error_mes('Ошибка', 'Вы не выбрали запись для удаления.');

                    }
                }
            ]
        };
        // ############## SMIGRID ###########################
        var smiGrid = new Ext.grid.GridPanel({
            region: 'center',
            store: smiStore,
            margins:'0 0 0 0',
            cmargins:'0 0 0 0',
            viewConfig: {
                forceFit: true
            },
            colModel: new Ext.grid.ColumnModel({
                defaults: {
                    width: 170,
                    sortable: true
                },
                columns: [
                    { header: 'ID', width: 60, dataIndex: 'actor_id'},
                    {header: 'Название СМИ', width: 200, dataIndex: 'actor_short_name'},
                    {header: 'Контактное лицо', width: 200, dataIndex: 'actor_contact_person'},
                    {header: 'Контактный телефон', width: 200, dataIndex: 'actor_contact_phone'}
                ]
            }),
            sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
            tbar: spravToolBar
        });
        //####### MEDIAGRID #########
        var mediaGrid = new Ext.grid.GridPanel({
            region: 'center',
            store: mediaStore,
            margins:'0 0 0 0',
            cmargins:'0 0 0 0',
            viewConfig: {
                forceFit: true
            },
            colModel: new Ext.grid.ColumnModel({
                defaults: {
                    width: 170,
                    sortable: true
                },
                columns: [
                    { header: 'ID', width: 60, dataIndex: 'actor_id'},
                    {header: 'Название СМИ', width: 200, dataIndex: 'actor_short_name'},
                    {header: 'Контактное лицо', width: 200, dataIndex: 'actor_contact_person'},
                    {header: 'Контактный телефон', width: 200, dataIndex: 'actor_contact_phone'}
                ]
            }),
            sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
            tbar: spravToolBar
        });
        // ############ BAINGGRID ####################
        var baingGrid = new Ext.grid.GridPanel({
            region: 'center',
            store: baingStore,
            margins:'0 0 0 0',
            cmargins:'0 0 0 0',
            viewConfig: {
                forceFit: true
            },
            colModel: new Ext.grid.ColumnModel({
                defaults: {
                    width: 170,
                    sortable: true
                },
                columns: [
                    { header: 'ID', width: 60, dataIndex: 'actor_id'},
                    {header: 'Название СМИ', width: 200, dataIndex: 'actor_short_name'},
                    {header: 'Контактное лицо', width: 200, dataIndex: 'actor_contact_person'},
                    {header: 'Контактный телефон', width: 200, dataIndex: 'actor_contact_phone'}
                ]
            }),
            sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
            tbar: spravToolBar
        });
        // ############ CUSTOMSGRID ####################
        var customsGrid = new Ext.grid.GridPanel({
            region: 'center',
            store: customsStore,
            margins:'0 0 0 0',
            cmargins:'0 0 0 0',
            viewConfig: {
                forceFit: true
            },
            colModel: new Ext.grid.ColumnModel({
                defaults: {
                    width: 170,
                    sortable: true
                },
                columns: [
                    { header: 'ID', width: 60, dataIndex: 'actor_id'},
                    {header: 'Название СМИ', width: 200, dataIndex: 'actor_short_name'},
                    {header: 'Контактное лицо', width: 200, dataIndex: 'actor_contact_person'},
                    {header: 'Контактный телефон', width: 200, dataIndex: 'actor_contact_phone'}
                ]
            }),
            selModel: new Ext.grid.RowSelectionModel({
                singleSelect:true,
                listeners: {
                    scope: brandsStore,
                    rowselect: function(sm, idx, r) {
                        var id = r.data.actor_id;
                        brandsStore.baseParams = { client_id: id};
                        brandsStore.load();
                    }
                }
            }),
            tbar: spravToolBar
        });
        var clientBrand = new Ext.grid.GridPanel({
            region: 'south',
            height: 200,
            split: true,
            store: brandsStore,
            margins:'0 0 0 0',
            cmargins:'0 0 0 0',
            viewConfig: {
                forceFit: true
            },
            colModel: new Ext.grid.ColumnModel({
                defaults: {
                    width: 170,
                    sortable: true
                },
                columns: [ //fields: ['brand_id', 'client_id', 'brand_name', 'brand_short_name', 'comment']
                    { header: 'ID', width: 60, dataIndex: 'brand_id'},
                    {header: 'Название Бренда', width: 200, dataIndex: 'brand_name'},
                    {header: 'Сокращенное название', width: 200, dataIndex: 'brand_short_name'},
                    {header: 'Коментарий', width: 200, dataIndex: 'comment'}
                ]
            }),
            sm: new Ext.grid.RowSelectionModel({ singleSelect:true }),
            tbar: {
                xtype: 'toolbar', height: 35,
                items: [
                    {xtype: 'tbbutton', text: 'Добавить', scale: 'medium', icon: 'img/butt_ico_24/blog-post-accept-icon.png',
                        handler: function() { }
                    }, '-',
                    {xtype: 'tbbutton', text: 'Редактировать', scale: 'medium', icon: 'img/butt_ico_24/blog-post-edit-icon.png',
                        handler: function() { }
                    }, '-',
                    {xtype: 'tbbutton', text: 'Удалить', scale: 'medium', icon: 'img/butt_ico_24/blog-post-delete-icon.png',
                        handler: function() { }
                    }
                ]
            }
        });
        //#################
        var spravTabs = new Ext.TabPanel({
            id: 'spravTabs',
            region: 'center',
            activeTab: 0,
            border: false,
            items: [
                {
                    title: 'СМИ',
                    layout: 'border',
                    items: [ smiGrid ]
                },{
                    title: 'Рекламодатели',
                    layout: 'border',
                    items: [ customsGrid, clientBrand ]
                },{
                    title: 'Медиа Агенства',
                    layout: 'border',
                    items: [ mediaGrid ]
                },{
                    title: 'Баинговые агенства',
                    layout: 'border',
                    items: [ baingGrid ]
                }
            ],
            listeners: {
                tabchange: function(tp, tab) {
                    if(tab.title == 'СМИ' ) {
                        curGrid = smiGrid;
                        curStore = smiStore;
                        spravEditWindow.mod = 0;
                    }
                    if(tab.title == 'Рекламодатели' ) {
                        curGrid = customsGrid;
                        curStore = customsStore;
                        spravEditWindow.mod = 1;
                    }
                    if(tab.title == 'Медиа Агенства' ) {
                        curGrid = mediaGrid;
                        curStore = mediaStore;
                        spravEditWindow.mod = 2;
                    }
                    if(tab.title == 'Баинговые агенства' )  {
                        curGrid = baingGrid;
                        curStore = baingStore;
                        spravEditWindow.mod = 3;
                    }
                    spravEditWindow.setTitle( tab.title );
                }
            }
        });
        //############ SPRAV EDIT FORM & WINDOW #########
        var brField = {
            xtype: 'textfield',
            fieldLabel: 'Брэнд',
            id: 'brandField',
            name: 'brand'
        };

        var spravEditForm = new Ext.FormPanel({
            region: 'center',
            id: 'spravEditForm',
            labelWidth: 130,
            frame:true,
            bodyStyle:'padding:5px 5px 0',
            //width: 300,
            defaults: {width: 325, allowBlank:false },
            defaultType: 'textfield',
            items: [{
                    fieldLabel: 'Полное название',
                    name: 'actor_name'
                },{
                    fieldLabel: 'Короткое название',
                    name: 'actor_short_name'
                },{
                    inputType: 'hidden',
                    name: 'actor_id'
                },{
                    fieldLabel: 'Юридическое лицо',
                    name: 'actor_legal_entity'
                },{
                    fieldLabel: 'Руководитель',
                    name: 'actor_chif_name'
                },{
                    fieldLabel: 'Контактное лицо',
                    name: 'actor_contact_person'
                },{
                    fieldLabel: 'Контактный телефон',
                    name: 'actor_contact_phone'
                }
            ]
        });

        var spravEditWindow = new Ext.Window({
            layout: 'border',
            //title: 'Информация о пользователе',
            width:500,
            height:300,
            closeAction:'hide',
            plain: true,
            modal: true,
            mod: 0,
            items: [ spravEditForm ],
            buttons: [{
                text:'Сохранить', scale: 'medium', icon: 'img/butt_ico_24/accept-icon.png',
                handler: function(){
                    var data = Ext.getCmp("spravEditForm").getForm().getFieldValues();
                    var url = ''; var msg ='';
                    data.actor_type_id = spravEditWindow.mod;
                    if(spravEditWindow.mod == 0) data.part = 'smi';
                    if(spravEditWindow.mod == 1) data.part = 'customs';
                    if(spravEditWindow.mod == 2) data.part = 'media';
                    if(spravEditWindow.mod == 3) data.part = 'baing';
                    if(data.actor_id) { url = '?module=AdminForm&action=updateSprav'; msg = 'исправлена'; }
                    else { url = '?module=AdminForm&action=createSprav'; msg = 'добавлена'; }
                    App.setAlert(App.STATUS_ATT, 'Пожалуйста подождите...');
                    Ext.Ajax.request({
                        url: url,
                        params: data,
                        callback: function(options, success, response) {
                                if(success) {
                                    curStore.load();
                                }
                                App.setAlert(App.STATUS_OK, 'Запись успешно '+msg+'...');
                                spravEditWindow.hide();
                        }
                    });
                }
            },{
                text: 'Закрыть', scale: 'medium', icon: 'img/butt_ico_24/remove-icon.png',
                handler: function(){
                    spravEditWindow.hide();
                }
            }]
        });


// End of Sprav part
//##############################################################################
// Settings Part
        var settTabs = new Ext.Panel({
            id: 'settTabs',
            region: 'center',
            bodyStyle: 'padding: 20px',
            activeTab: 0,
            border: false,
            html: 'Пока не известно что  нужно настраивать !!!'
            //items: [{}]
        });
// End of Settings Part
// Common Part
        var App = new Ext.App({});

        var CloseWin = function() {
		document.location = '?module=auth&action=logout';
	};
        var ButtonPanel = Ext.extend(Ext.Panel, {
            layout:'table',
            defaultType: 'button',
            baseCls: 'x-plain',
            cls: 'btn-panel',
            align: 'left',
            menu: undefined,
            split: true,
            layoutConfig: {
                columns:1
            },
            constructor: function(buttons){
                for(var i = 0, b; b = buttons[i]; i++){
                    b.menu = this.menu;
                    b.enableToggle = this.enableToggle;
                    b.split = this.split;
                    b.align = this.align;
                }
                ButtonPanel.superclass.constructor.call(this, { items: buttons });
            }
        });
        var Partitions = new ButtonPanel(
            [{
                text: '<div class="pButt">Пользователи</div >',
                //width: 175,
                icon: 'img/butt_ico/users-icon.png',
                scale: 'large',
                bodyStyle: 'text-align: left',
                handler: function() { Ext.getCmp('MainContent').layout.setActiveItem('userTabs'); }
            }, { xtype: 'box', html:'&nbsp;'},
            {
                text: '<div  class="pButt">Справочники</div >',
                //width: 175,
                icon: 'img/butt_ico/application-icon.png',
                scale: 'large',
                handler: function() { Ext.getCmp('MainContent').layout.setActiveItem('spravTabs'); }
            }, { xtype: 'box', html:'&nbsp;'},
            {
                text: '<div  class="pButt">Настройки</div >',
                //width: 175,
                icon: 'img/butt_ico/page-process-icon.png',
                scale: 'large',
                handler: function() { Ext.getCmp('MainContent').layout.setActiveItem('settTabs'); }
            }]
        );
        var MainToolBar = {
		region: 'north',
                height: '20',
		xtype: 'toolbar',
		items: [
			{xtype: 'tbtext', text: '&nbsp;Имя пользователя: '+USER}, '-', '->','-',
			{text: 'Выход', handler: CloseWin, id: 'close-btn'}
		]
	};
	var PartWin = {
		xtype: 'panel',
		title: 'Разделы',
		region: 'west',
		autoScroll:true,
		split: true,
		width: 155,
		collapsible: true,
                bodyStyle: 'padding:10px;',
		margins:'3 0 3 3',
		cmargins:'3 3 3 3',
		items: [ Partitions ]
	};
	var MainWin  = new Ext.Panel({
            id: 'MainContent',
            region: 'center',
            margins:'3 3 3 0',
            cmargins:'3 3 3 3',
            border: false,
            layout: 'card',
            activeItem: 0,
            //layout: 'border',
            autoScroll: true,
            items: [ userTabs, spravTabs, settTabs ]
	});
        
	var error_mes = function(tit, mes) {
            Ext.MessageBox.show({
                title: tit,
                width: 800,
                heigth: 600,
                msg: mes,
                buttons: Ext.MessageBox.OK,
                fn: null,
                icon: 'ext-mb-info'
            });
	};

        var VP = new Ext.Viewport({
		layout: 'border',
		items: [ MainWin, MainToolBar, PartWin ]
	});

	VP.render('vp');

});